"use strict";

const Controller = require("egg").Controller;

class GradeController extends Controller {
    /**
     * 添加教室
     */
    async create() {
        // 解析请求体参数
        const { sn } = this.ctx.request.body;
        // 非空校验
        if (!sn) {
            this.ctx.body = {
                code: 400,
                message: "教室号不能为空",
            };
            return;
        }
        // 查询是否存在该教室号
        const grade = await this.service.room.selectBySn(sn);
        if (grade) {
            this.ctx.body = {
                code: 403,
                message: "该教室号已存在",
            };
            return;
        }
        // 保存到数据库
        const res = await this.service.room.insert(sn);
        if (res.affectedRows === 1) {
            // 返回响应
            this.ctx.body = {
                code: 201,
                message: "教室添加成功",
            };
        }
    }

    /**
     * 教室列表
     */
    async index() {
        const res = await this.service.room.select();
        // 返回响应
        this.ctx.body = {
            code: 200,
            data: res,
            message: "获取列表成功",
        };
    }

    /**
     * 删除
     */
    async remove() {
        console.log(123213);
        // 接收路径参数
        const { id } = this.ctx.params;
        // 查询是否存在这个教室
        const room = await this.service.room.find(id);
        if (!room) {
            this.ctx.body = {
                code: 404,
                message: "该教室不存在",
            };
            return;
        }
        // 删除
        const res = await this.service.room.delete(id);
        // 判断是否删除成功
        if (res.affectedRows === 1) {
            this.ctx.body = {
                code: 204,
                message: "删除成功",
            };
        }
    }
}

module.exports = GradeController;
